草庐IT

JavaScript prototype(原型对象)

全部标签

vbscript - 我可以从 VBScript 初始化用 JScript 编写的对象吗?

我正在尝试编写WSH登录脚本。整个公司的管理员需要能够为特定位置和用户自定义脚本的执行,并执行其他脚本。为了使他们的工作更轻松,我想提供一个API,管理员可以在他们的脚本中访问该API。如果我使用JScript编写我的API,是否可以初始化我通过VBScript定义的对象?例如,考虑以下代码://AdemonstrationfunctionfunctionOverNineThousand(){return9001;}//Ademonstration"class"functionWorkstationClass(){varos="WindowsXP";this.getOperatingS

javascript - "click anywhere to close"的原型(prototype)最佳实践?

我发现自己经常处于打开网页中的元素的情况-例如一个下拉菜单-如果用户点击页面上除了元素本身以外的任何地方,我想关闭它。为简单起见,大部分代码都是我自己编写的,而不是使用一些下拉菜单类。但是,我从来没有设法构建一个完全令人满意的实现:事件处理和冒泡在不同的浏览器中会以不同的方式工作,需要一些讨厌的解决方法,在某些情况下单击下拉按钮会在同一时刻开始关闭它,依此类推。是否有基于原型(prototype)的权威最佳实践来执行此操作?跨浏览器工作的东西-IE6是一个加号但不是必需的?就是这样:点击按钮-打开一个元素(例如,绝对定位的下拉菜单)。在元素内单击-元素保持打开状态。单击打开元素的按钮t

asp.net - 从 ASP.Net Web 服务 json 输出中删除 "d"对象

我有一些javascript代码可以处理来自使用框架2.0构建的asp.netWeb服务的json输出。现在我需要支持从框架3.5Web服务返回的数据。我的javascript代码假定一个对象列表作为返回值,这在2.0中工作正常。然而在框架3.5中,列表被包装在一个“d”对象中。有什么办法可以删除“d”包装器并只返回列表吗?我更愿意在服务器端解决这个问题 最佳答案 您不能配置3.5+服务不返回.d。它也在那里很好,因为它可以防止当外部JSON实体是数组时存在的棘手的JSON劫持场景。ASP.NETAJAX的客户端代理会自动对您隐藏.

javascript - CouchDB View 使用来自两个单独文档的嵌入式数组组成 JSON 对象

假设我的CouchDB数据库中存储了两种类型的文档。第一个是属性类型设置为contact,第二个是phone。联系人类型文档有另一个名为名称的属性。电话类型有属性number和contact_id以便它可以引用联系人。这是一个简单的一对多场景,其中一个联系人可以有N个电话号码(我知道它们可以嵌入到单个联系人文档中,但我需要证明与不同文档的一对多关系)。原始示例数据,其中Scott有2个电话号码,Matt有1个电话号码:{_id:"fc93f785e6bd8c44f14468828b001109",_rev:"1-fdc8d121351b0f5c6d7e288399c7a5b6",typ

javascript - JavaScript 中的原型(prototype)

在JavaScript中,您可以用多种不同的方式做同样的事情。考虑示例:1:functionCircle(radius){return{"r":radius,"area":function(){returnCircle.pi*this.r*this.r;}}}Circle.pi=3.14159;vara=Circle(10);alert(a.area());2:functionCircle(radius){this.r=radius;}Circle.pi=3.14159;Circle.prototype.area=function(){returnCircle.pi*this.r*th

闭包中的 javascript 原型(prototype)和 "this"访问

我是js新手,对下面的代码很疑惑:Foo=function(arg){this.arg=arg;};Foo.prototype={init:function(){varf=function(){alert("currentarg:"+this.arg);//amexpecting"bar",gotundefined}f();}};varyo=Foo("bar");yo.init();我应该得到“currentarg:bar”,但得到的是“currentarg:undefined”。我注意到首先将this.arg复制到一个“普通”变量中,然后在闭包中引用这个变量:Foo.prototyp

JavaScript - Function 核心对象的行为

据我了解,在JavaScript(Gecko变体)中:vara=newA();是这样的语法糖:vara={};a.__proto__=A.prototype;A.call(a);因此,A()(相当于A.call()?)和newA()应该产生两个不同的结果,如下所示:>>>newDate()FriNov19201001:44:22GMT+0100(CET){}>>>typeofnewDate()"object">>>Date()"FriNov19201001:44:42GMT+0100(CET)">>>typeofDate()"string"到目前为止一切顺利。但是,核心对象Functi

javascript - 在 V8 中,如何在垃圾回收 JavaScript 对象后删除包装的 C++ 对象?

假设我有thistutorial中提供的代码.我该如何修改它,以便当V8的GC销毁JavaScript包装器时,创建的PointC++对象调用其析构函数并从内存中删除? 最佳答案 您想创建一个持久句柄并使其变弱(v8::Persistent::MakeWeak(data,cb))。在回调中,您可以删除C++对象。与垃圾收集器一样,确定弱可达性的确切时间取决于执行GC的时间。因此,native资源的释放可能比您预期的要晚得多。您可以通知V8您持有的原生资源数量(v8::AdjustAmountOfExternalAllocatedMe

javascript - 在javascript中添加一个对象和一个数组的结果是什么?

我在地址栏中试过这段代码:javascript:alert({}+[])结果是:[对象对象]。javascript:alert(typeof({}+[]))结果是:字符串。谁能给我解释一下这是怎么回事? 最佳答案 连接运算符(+)将两个字符串值连接在一起。如果你给它的东西不是字符串值,那么它会首先调用它们的.toString()方法。回应下面的评论,“是的!”Object.prototype.toString=function(){return"a";};Array.prototype.toString=function(){ret

javascript - 在javascript中从内存中删除对象

我正在开发一个包含大量Javascript的AJAX应用程序。所有页面均通过AJAX加载。在某个页面上,我有一个用Javascript构建的网格。现在,当我离开该页面时,我想销毁该网格。我调用jQuery.remove()但这只会从DOM中删除对象。我的问题是如何从内存中删除这个网格对象?因为当我离开页面时它仍然存在。非常感谢! 最佳答案 如果您删除对网格的所有引用(即,将null分配给变量),垃圾收集器将从内存中删除该对象。 关于javascript-在javascript中从内存中删